Some computing systems have the capability to engage in multiple simultaneous sessions in which multiple users can log onto the computing system and engage in their own distinct sessions. A user session includes a set of one or more processes that are associated with that session and that will be run in the context specific to the associated user. Each user's session is partitioned such that the user is presented with a user interface that matches the configuration for that session. From the user's perspective, there may not even be any obvious indication that there are other users logged into other sessions managed by the same computing system.
In order to allow multiple users to interface with a computing system at the same time, the computing system may include multiple display and input devices. Accordingly, computing systems capable of engaging in multiple simultaneous sessions are often distributed, even though processes associated with each of the sessions may be running in a consolidated manner on a single machine. In one common configuration, a single master session may govern multiple user sessions, where the master session is devoted to administrative processes that are not specific to a given user, and where a distinct user may be logged into each user session. Due to the higher level of control desired for the master session, processes that run in the master session may typically allow more system-level functionality than do user sessions. For instance, reformatting a hard drive may be possible from a process in a master session, but not from a process in a user session.
Diagnostic tools are often used to gather data from or about a process running on the computer, and often to evaluate performance of the process based on the gathered data. When a diagnostic tool is executed, an associated process is initiated in the user session in which the diagnostic tool was launched. The diagnostic tool may then be used to evaluate processes within that same session. If evaluation of a process outside of that session is desired, the diagnostic tool typically needs to be launched in that other session. This is because the diagnostic tool gathers data by injecting code into the process being evaluated by launching a remote thread into the process under evaluation. This remote threading is typically prohibited across sessions.
It can represent a significant inconvenience for the user to launch the evaluation tool in the separate session in which the target process (i.e., the process to be evaluated) is running. Furthermore, it may not even be feasible or possible for the user to enter that other session to thereby launch the diagnostic tool in that session.